package com.hyx.bookManager.mapper;

import com.hyx.bookManager.domain.po.Book;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import java.time.LocalDateTime;
import java.util.List;

@Mapper
@Component
public interface BookMapper {
    boolean insertBook(@Param("img") String file, @Param("name") String name, @Param("desc") String desc, @Param("num") Integer num, @Param("id") Long id, @Param("createTime") LocalDateTime createTime, @Param("updateTime") LocalDateTime updateTime);

    Integer updateBookState(@Param("state") Integer state,@Param("bookId") Long bookId);

    Integer borrowingBook(@Param("now") LocalDateTime now,@Param("after") LocalDateTime after,@Param("id") String id,@Param("bookId") Long bookId);

    List<Book> getBookByTagId(@Param("page") Integer page,@Param("pageSize") Integer pageSize,@Param("tagId") Long tagId);

    List<Book> getCurrentBookData(@Param("before") LocalDateTime befor,@Param("now") LocalDateTime now);

    List<Book> getBook(@Param("page") int page,@Param("pageSize") Integer pageSize,@Param("tagId") Long tagId,@Param("status") Byte bookStatus);

    Long getBookCount(@Param("pageSize") Integer pageSize,@Param("tagId") String tagId,@Param("status") String status);

    List<Book> getBorrowingByUserId(@Param("id") String id,@Param("page") Long page,@Param("pageSize") Long pageSize);

    Long getBookTotalPage(@Param("pageSize") Long pageSize,@Param("tagId") Long tagId);

    Long getTotalBook();
}
